2017-10-13 shell 练习-删除文本中的字母 shell练习 使用sed实现,把一个文本文档中的前5行中包含字母的行删除掉。 1head -5 1.txt|sed '/[a-Z]/d' 把一个文本文档的前5行中包含字母的行删除掉,同时把6到10行中的全部字母删除掉。 假设文本名字叫做1.txt,并且文本行数大于10,脚本如下 1234567891011121314151617181920212223242526#!/bin/bash##先获取该文本的行数nu=`wc -l 1.txt |awk '{print $1}'`##对前5行进程处理for i in `seq 1 5`do ##使用sed把每一行的内容赋值给变量 l=`sed -n "$i"p 1.txt` ##用grep 判定是否匹配字母,-v取反,-q不输出内容 if echo $l |grep -vq '[a-zA-Z]' then echo $l fidone##对6-10行做删除字母处理for i in `seq 6 10`do l=`sed -n "$i"p 1.txt` echo $l|sed 's/[a-zA-Z]//g'done##剩余的直接输出for i in `seq 11 $nu`do sed -n "$i"p 1.txtdone##若想把更改内容写入到1.txt,还需要把以上内容重定向到一个文本中,然后删除1.txt,再把刚刚重定向的文件更名为1.txt < shell 练习-查找字母数小于6的单词 shell 练习-自动重启php-fpm >